package fr.greta.centreFormation.controller;

import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import fr.greta.centreFormation.bean.Candidat;
import fr.greta.centreFormation.dao.CandidatHome;
import fr.greta.centreFormation.dao.PromotionHome;

/**
 * Servlet implementation class FichierXML
 */
public class FichierXML extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public FichierXML() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * crée un fichier ayant pour nom la date et l'heure du jour dans le dossier
	 * candidats situé dans le répertoire de déploiement de l'application
	 * 
	 * 
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// récupération de l'id de la Promotion

		Integer idPromo = Integer.parseInt(request.getParameter("idProm"));
		//System.out.println("l'id de la promo est " + idPromo);

		// date et heure
		SimpleDateFormat dateFormat = new SimpleDateFormat(
				"dd-MM-yyyy-HH-mm-ss");
		String dateString = dateFormat.format(new Date());

		try {

			// chemin de déploiement
			String filePath = getServletContext().getRealPath(
					"/candidats/" + dateString+"-n°"+idPromo);
			System.out.println("file path : " + filePath);

			ArrayList<Candidat> allCandidats = new ArrayList<Candidat>();
			allCandidats = CandidatHome.selectAllCandidatByIdPromotion(idPromo);
			// System.out.println("nb candidats : " + allCandidats.size());

			// Sauver le fichier
			FileWriter fw = new FileWriter(filePath);
			fw.write("<candidats>\n");
			for (Candidat unCandidat : allCandidats) {
				fw.write("<candidat>\n");
				fw.write("<nom>" + unCandidat.getNom() + "</nom>\n");
				fw.write("<prenom>" + unCandidat.getPrenom() + "</prenom>\n");
				fw.write("<adresse>" + unCandidat.getAdresse() + "</adresse>\n");
				fw.write("<codePostal>" + unCandidat.getCodePostale()
						+ "</codePostal>\n");
				fw.write("<ville>" + unCandidat.getVille() + "</ville>\n");

				// for(Promotion unePromotion:
				// unCandidat.getCollectionDePromotions()){
				// f.write("<promotion>\n");
				// f.write("<idPromotion>"+unePromotion.getIdPromotion()+"</idPromotion>\n");
				// f.write("<debutPromotion>"+unePromotion.getDebutPromotion()+"</debutPromotion>\n");
				// f.write("<finPromotion>"+unePromotion.getFinPromotion()+"</finPromotion>\n");
				// f.write("</promotion>");
				// }

				fw.write("</candidat>\n");
			}

			fw.write("</candidats>");
			fw.close();

			// response.sendRedirect("lesCandidats.jsp");

			request.getRequestDispatcher("GestionCandidat").forward(request,
					response);

		} catch (Exception e) {
			e.getMessage();
		}

	}
}
